<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Whisper: CUISocket Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Whisper
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#pri-static-attribs">Static Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">CUISocket Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="CUISocket" -->
<p><code>#include &lt;<a class="el" href="ui__socket_8h_source.html">ui_socket.h</a>&gt;</code></p>

<p><a href="classCUISocket-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#afee809112baa5364f51f81e5f2a8212b">setPropertiesReader</a> (<a class="el" href="properties__reader_8h.html#a67847fd00cb49d80dd45f61722eb9a43">CPropertiesReader</a> *pConfig)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a108336762bfba6e0cd82f90b343d4a8d">startUIServer</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aa67053ededca7396999cf9236756b837">waitForUIClientAndStartSignal</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a5c2c555aef9065701ed9332b285a2083">setAmpMultiplier</a> (double amp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a6617426e8cac4297824f2915dfcccbb7">getAmpMultiplier</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a49f48904e1979287e35b4bd6360a8616">setRunning</a> (bool *pRunning)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a64f1386ed505563bca2b077c48b9d8bd">sendInfo</a> (uint8_t pLogLevel, const char *pDate, int pDateLen, const char *pInfo, int pInfoLen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a30862c28b8475def04bed534d90b2cef">sendExtractBufferInfo</a> (uint32_t pUsed, uint32_t pSize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#af430160332bdae64d31111d423b86653">sendFrameSendLength</a> (uint32_t pLength)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#ab6bd0a3090260efc93b0d1d8a581725d">sendFrameRecvLength</a> (uint32_t pLength, bool pError)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a694762d2f9412296c8cc5ecd55696a2b">sendPacketSendLength</a> (uint32_t pLength)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a8729d9e58f5bb0a6155a85d2c883cb59">sendPacketRecvLength</a> (uint32_t pLength, bool pCrcError)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a910519bb460ae46977c7bde573ed11c4">sendStreamSendInfo</a> (int pId, int pAck, uint32_t pLength, bool pReplay)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aac64188eb647ce49d985e182a689c7c3">sendStreamSendData</a> (void *pData, int pLength)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a70f0d1081cd688dc4dcb85a8cb753154">sendStreamRecvInfo</a> (int pId, int pAck, uint32_t pLength, bool pReplay)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#ad59551d52bfa47b4552198a6ed64dde9">sendStreamRecvData</a> (void *pData, int pLength)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aeee0cd96e8153005e16d50e9b8b4c9c6">sendProtocolOpen</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a21e4a16f7475965caa7eb1482cc6d515">sendProtocolWrite</a> (void *pData, int pLength)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a0974942bfcf36204ec3b3226d433f3c9">sendProtocolClose</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a701935eafe95d8deb25ae3575c591d00">sendProtocolReadFeedback</a> (uint32_t pRead, uint32_t pSize)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#afed242cdc5a412bd489354eee0ef9f6c">sendAmpEmbed</a> (unsigned char pAmp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a7163501984bd3362b201a219855bc089">sendAmpExtract</a> (unsigned char pAmp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a35ed529797a42cf07e8fdf76b2e79e4f">getNextProtocolReadByte</a> (unsigned char &amp;pReadValue)</td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classCUISocket.html">CUISocket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#ab006181e1757584fda623337a8c4038a">getInstance</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#af4406d7bf762e81116e6641e9e6aa38c">destroy</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#ae2103572309116cadf6bc20dcb708ec2">CUISocket</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a1f85e18bf2626625d0dcfac97e9a7edf">~CUISocket</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a9b19fd388475f468f41a1c301df4b823">CUISocket</a> (const <a class="el" href="classCUISocket.html">CUISocket</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCUISocket.html">CUISocket</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a3ca7579043e634d08dff251a5fa0b45b">operator=</a> (const <a class="el" href="classCUISocket.html">CUISocket</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a7ae68505fbd40e081f950f3c8977287b">threadForServerAccept</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a297b14c0cbaf927e0f4fd87a9f8120a4">clientFunction</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a120684bbc1fc19767e6243bf079d7d1e">fullRecv</a> (void *pBuf, int pLength)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#ac2f5d523f1222c777067f0537488f09f">fullSend</a> (const void *pBuf, int pLength)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#ae24d01cb02c33e2605c1fe7f66086acd">sendLength</a> (uint32_t pLen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a0a247cf861ecefb2d7ad2e0f7f6d0d47">sendData</a> (const void *pPayload, int pLen)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a1d827cb5b450f0406071a240532c1fcf">sendCommand</a> (uint8_t pCommand, const void *pPayload, int pLen)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and send a command over the socket to the UI.  <a href="#a1d827cb5b450f0406071a240532c1fcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#ab8db7809dec663e4f2ab1f2917b7314d">sendConfiguration</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a47e3f1e51216c4553768ca8ac3dbba7a">printData</a> (unsigned int pOffset, const void *pData, int pLen)</td></tr>
<tr><td colspan="2"><h2><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a87617588abf1b0c38a3f214c55750bb4">pthreadForServerAccept</a> (void *pUISocket)</td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aab63ab870a2d3649d1d66ead11d73eaf">mCommandSendSync</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aaec2a23c5e3255a0dffc3a3c62472007">mSendSync</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="properties__reader_8h.html#a67847fd00cb49d80dd45f61722eb9a43">CPropertiesReader</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#ab788cb96d6bb37631898b83a4697b3dd">mConfig</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a00bc83d2580f29358c85b605b7c0e51b">mAmpSync</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aee81859d16cb6c117712296b250bdd6e">mAmpMulti</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#af429e2606f58040c5907b5deb3b4d173">mServerSocket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct sockaddr_in&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a0a3c06900b0b9fb9a9d920deea0da492">mServerAddress</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">pthread_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a9549ccfd26af168daef1e63263cae042">mServerThdId</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a3361b8b3e99b76814c206c34b34a2d82">mClientSocket</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct sockaddr_in&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a17c820348b6d3f65530ebcb713b23d2f">mClientAddress</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a96082f4805fd90bb93108779862b0df1">mAllowClients</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aba9f5b2c4634bbbcb8c94b498b886355">mWaitTime</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a22d3544a8839f1b1c0e8746202178f16">mStartSignalValue</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a652b9075b42132035fdd1f405dc8dc70">mRunning</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aae9ef13605d9560c2ee1feed25252fa4">mShutdown</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a143e07bf1578ce8f0760164cd38800a8">mProtocolSync</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aeea9fcbf6a6da69cb383f8d4229217cf">mProtocolDataLength</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a4931380b93a42c044af927cba4f78a0d">mProtocolDataNextIndex</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a5cab2065bee4316741e44ff14267d1c9">mProtocolData</a></td></tr>
<tr><td colspan="2"><h2><a name="pri-static-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aa59bd314cded7c165146925bfa68c838">sSync</a> = PTHREAD_MUTEX_INITIALIZER</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static pthread_cond_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a6dd0c8d6e78cea3dd9ad8600f968edc3">sConnectSignal</a> = PTHREAD_COND_INITIALIZER</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static pthread_cond_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a5e133f3495bfb9967c972f116132691d">sStartSignal</a> = PTHREAD_COND_INITIALIZER</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classCUISocket.html">CUISocket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#aafd44dd43eaeb5300261fba95c9c633a">sInstance</a> = NULL</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a12587315854a71b4414b9bc71348376e">sIniSection</a> = &quot;USER_INTERFACE&quot;</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCUISocket.html#a8ea0cb46eba53eafa17dba409689b209">sMaxDataLength</a> = 1048576</td></tr>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae2103572309116cadf6bc20dcb708ec2"></a><!-- doxytag: member="CUISocket::CUISocket" ref="ae2103572309116cadf6bc20dcb708ec2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CUISocket::CUISocket </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1f85e18bf2626625d0dcfac97e9a7edf"></a><!-- doxytag: member="CUISocket::~CUISocket" ref="a1f85e18bf2626625d0dcfac97e9a7edf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CUISocket::~CUISocket </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9b19fd388475f468f41a1c301df4b823"></a><!-- doxytag: member="CUISocket::CUISocket" ref="a9b19fd388475f468f41a1c301df4b823" args="(const CUISocket &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CUISocket::CUISocket </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCUISocket.html">CUISocket</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a297b14c0cbaf927e0f4fd87a9f8120a4"></a><!-- doxytag: member="CUISocket::clientFunction" ref="a297b14c0cbaf927e0f4fd87a9f8120a4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::clientFunction </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af4406d7bf762e81116e6641e9e6aa38c"></a><!-- doxytag: member="CUISocket::destroy" ref="af4406d7bf762e81116e6641e9e6aa38c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::destroy </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a120684bbc1fc19767e6243bf079d7d1e"></a><!-- doxytag: member="CUISocket::fullRecv" ref="a120684bbc1fc19767e6243bf079d7d1e" args="(void *pBuf, int pLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CUISocket::fullRecv </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pBuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ac2f5d523f1222c777067f0537488f09f"></a><!-- doxytag: member="CUISocket::fullSend" ref="ac2f5d523f1222c777067f0537488f09f" args="(const void *pBuf, int pLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CUISocket::fullSend </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>pBuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6617426e8cac4297824f2915dfcccbb7"></a><!-- doxytag: member="CUISocket::getAmpMultiplier" ref="a6617426e8cac4297824f2915dfcccbb7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double CUISocket::getAmpMultiplier </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ab006181e1757584fda623337a8c4038a"></a><!-- doxytag: member="CUISocket::getInstance" ref="ab006181e1757584fda623337a8c4038a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCUISocket.html">CUISocket</a> * CUISocket::getInstance </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a35ed529797a42cf07e8fdf76b2e79e4f"></a><!-- doxytag: member="CUISocket::getNextProtocolReadByte" ref="a35ed529797a42cf07e8fdf76b2e79e4f" args="(unsigned char &amp;pReadValue)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CUISocket::getNextProtocolReadByte </td>
          <td>(</td>
          <td class="paramtype">unsigned char &amp;&#160;</td>
          <td class="paramname"><em>pReadValue</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>False for no data, True for data </dd></dl>

</div>
</div>
<a class="anchor" id="a3ca7579043e634d08dff251a5fa0b45b"></a><!-- doxytag: member="CUISocket::operator=" ref="a3ca7579043e634d08dff251a5fa0b45b" args="(const CUISocket &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCUISocket.html">CUISocket</a>&amp; CUISocket::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCUISocket.html">CUISocket</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a47e3f1e51216c4553768ca8ac3dbba7a"></a><!-- doxytag: member="CUISocket::printData" ref="a47e3f1e51216c4553768ca8ac3dbba7a" args="(unsigned int pOffset, const void *pData, int pLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string CUISocket::printData </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>pOffset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>For debug network traffic. </p>

</div>
</div>
<a class="anchor" id="a87617588abf1b0c38a3f214c55750bb4"></a><!-- doxytag: member="CUISocket::pthreadForServerAccept" ref="a87617588abf1b0c38a3f214c55750bb4" args="(void *pUISocket)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void * CUISocket::pthreadForServerAccept </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pUISocket</em></td><td>)</td>
          <td><code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afed242cdc5a412bd489354eee0ef9f6c"></a><!-- doxytag: member="CUISocket::sendAmpEmbed" ref="afed242cdc5a412bd489354eee0ef9f6c" args="(unsigned char pAmp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendAmpEmbed </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>pAmp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7163501984bd3362b201a219855bc089"></a><!-- doxytag: member="CUISocket::sendAmpExtract" ref="a7163501984bd3362b201a219855bc089" args="(unsigned char pAmp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendAmpExtract </td>
          <td>(</td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>pAmp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a1d827cb5b450f0406071a240532c1fcf"></a><!-- doxytag: member="CUISocket::sendCommand" ref="a1d827cb5b450f0406071a240532c1fcf" args="(uint8_t pCommand, const void *pPayload, int pLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CUISocket::sendCommand </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>pCommand</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>pPayload</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create and send a command over the socket to the UI. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>This methode use the mutex mCommandSendSync for sync!!! </dd>
<dd>
This methode create the 4 byte length field. The value of this field is pLen + 1 (for command).</dd>
<dd>
A command need not use this methode to create the command header and its payload but then it must use the mutex mCommandSendSync like the methode sendInfo.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pCommand</td><td>the command, interpreted by the UI </td></tr>
    <tr><td class="paramname">pPayload</td><td>the payload for the command </td></tr>
    <tr><td class="paramname">pLen</td><td>length of the payload (only, without command-length respectively) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true for successful transmission, false otherwise. false for pLen &lt; 0 or pPayload-null-pointer and pLen != 0 </dd></dl>

</div>
</div>
<a class="anchor" id="ab8db7809dec663e4f2ab1f2917b7314d"></a><!-- doxytag: member="CUISocket::sendConfiguration" ref="ab8db7809dec663e4f2ab1f2917b7314d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CUISocket::sendConfiguration </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Send one or more COMMAND_TRANSMIT_CONFIG commands and mark the end with a COMMAND_TRANSMIT_CONFIG_END command.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>each command is synced by sendCommand (which use mCommandSendSync) But it's not guaranteed that no other command is between the commands of this methode. </dd></dl>

</div>
</div>
<a class="anchor" id="a0a247cf861ecefb2d7ad2e0f7f6d0d47"></a><!-- doxytag: member="CUISocket::sendData" ref="a0a247cf861ecefb2d7ad2e0f7f6d0d47" args="(const void *pPayload, int pLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CUISocket::sendData </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>pPayload</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>Don't sync with mCommandSendSync because this is not a full command. </dd></dl>

</div>
</div>
<a class="anchor" id="a30862c28b8475def04bed534d90b2cef"></a><!-- doxytag: member="CUISocket::sendExtractBufferInfo" ref="a30862c28b8475def04bed534d90b2cef" args="(uint32_t pUsed, uint32_t pSize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendExtractBufferInfo </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pUsed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="ab6bd0a3090260efc93b0d1d8a581725d"></a><!-- doxytag: member="CUISocket::sendFrameRecvLength" ref="ab6bd0a3090260efc93b0d1d8a581725d" args="(uint32_t pLength, bool pError)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendFrameRecvLength </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>pError</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="af430160332bdae64d31111d423b86653"></a><!-- doxytag: member="CUISocket::sendFrameSendLength" ref="af430160332bdae64d31111d423b86653" args="(uint32_t pLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendFrameSendLength </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pLength</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="a64f1386ed505563bca2b077c48b9d8bd"></a><!-- doxytag: member="CUISocket::sendInfo" ref="a64f1386ed505563bca2b077c48b9d8bd" args="(uint8_t pLogLevel, const char *pDate, int pDateLen, const char *pInfo, int pInfoLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CUISocket::sendInfo </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>pLogLevel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pDate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pDateLen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>pInfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pInfoLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync with mCommandSendSync </dd></dl>

</div>
</div>
<a class="anchor" id="ae24d01cb02c33e2605c1fe7f66086acd"></a><!-- doxytag: member="CUISocket::sendLength" ref="ae24d01cb02c33e2605c1fe7f66086acd" args="(uint32_t pLen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CUISocket::sendLength </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pLen</em></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>Don't sync with mCommandSendSync because this is not a full command. </dd></dl>

</div>
</div>
<a class="anchor" id="a8729d9e58f5bb0a6155a85d2c883cb59"></a><!-- doxytag: member="CUISocket::sendPacketRecvLength" ref="a8729d9e58f5bb0a6155a85d2c883cb59" args="(uint32_t pLength, bool pCrcError)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendPacketRecvLength </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>pCrcError</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="a694762d2f9412296c8cc5ecd55696a2b"></a><!-- doxytag: member="CUISocket::sendPacketSendLength" ref="a694762d2f9412296c8cc5ecd55696a2b" args="(uint32_t pLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendPacketSendLength </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pLength</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="a0974942bfcf36204ec3b3226d433f3c9"></a><!-- doxytag: member="CUISocket::sendProtocolClose" ref="a0974942bfcf36204ec3b3226d433f3c9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendProtocolClose </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="aeee0cd96e8153005e16d50e9b8b4c9c6"></a><!-- doxytag: member="CUISocket::sendProtocolOpen" ref="aeee0cd96e8153005e16d50e9b8b4c9c6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CUISocket::sendProtocolOpen </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="a701935eafe95d8deb25ae3575c591d00"></a><!-- doxytag: member="CUISocket::sendProtocolReadFeedback" ref="a701935eafe95d8deb25ae3575c591d00" args="(uint32_t pRead, uint32_t pSize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendProtocolReadFeedback </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pRead</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Send feedback to GUI how much bytes already readed with getNextProtocolByte from mProtocolData buffer.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="a21e4a16f7475965caa7eb1482cc6d515"></a><!-- doxytag: member="CUISocket::sendProtocolWrite" ref="a21e4a16f7475965caa7eb1482cc6d515" args="(void *pData, int pLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendProtocolWrite </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="ad59551d52bfa47b4552198a6ed64dde9"></a><!-- doxytag: member="CUISocket::sendStreamRecvData" ref="ad59551d52bfa47b4552198a6ed64dde9" args="(void *pData, int pLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendStreamRecvData </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="a70f0d1081cd688dc4dcb85a8cb753154"></a><!-- doxytag: member="CUISocket::sendStreamRecvInfo" ref="a70f0d1081cd688dc4dcb85a8cb753154" args="(int pId, int pAck, uint32_t pLength, bool pReplay)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendStreamRecvInfo </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pAck</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>pReplay</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="aac64188eb647ce49d985e182a689c7c3"></a><!-- doxytag: member="CUISocket::sendStreamSendData" ref="aac64188eb647ce49d985e182a689c7c3" args="(void *pData, int pLength)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendStreamSendData </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="a910519bb460ae46977c7bde573ed11c4"></a><!-- doxytag: member="CUISocket::sendStreamSendInfo" ref="a910519bb460ae46977c7bde573ed11c4" args="(int pId, int pAck, uint32_t pLength, bool pReplay)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::sendStreamSendInfo </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>pAck</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>pReplay</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="note"><dt><b>Note:</b></dt><dd>sync by sendCommand (which use mCommandSendSync) </dd></dl>

</div>
</div>
<a class="anchor" id="a5c2c555aef9065701ed9332b285a2083"></a><!-- doxytag: member="CUISocket::setAmpMultiplier" ref="a5c2c555aef9065701ed9332b285a2083" args="(double amp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::setAmpMultiplier </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>amp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="afee809112baa5364f51f81e5f2a8212b"></a><!-- doxytag: member="CUISocket::setPropertiesReader" ref="afee809112baa5364f51f81e5f2a8212b" args="(CPropertiesReader *pConfig)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CUISocket::setPropertiesReader </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="properties__reader_8h.html#a67847fd00cb49d80dd45f61722eb9a43">CPropertiesReader</a> *&#160;</td>
          <td class="paramname"><em>pConfig</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a49f48904e1979287e35b4bd6360a8616"></a><!-- doxytag: member="CUISocket::setRunning" ref="a49f48904e1979287e35b4bd6360a8616" args="(bool *pRunning)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CUISocket::setRunning </td>
          <td>(</td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>pRunning</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a108336762bfba6e0cd82f90b343d4a8d"></a><!-- doxytag: member="CUISocket::startUIServer" ref="a108336762bfba6e0cd82f90b343d4a8d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CUISocket::startUIServer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>create a new server thread for user interface socket. Name/IP and Port are used from config. </p>

</div>
</div>
<a class="anchor" id="a7ae68505fbd40e081f950f3c8977287b"></a><!-- doxytag: member="CUISocket::threadForServerAccept" ref="a7ae68505fbd40e081f950f3c8977287b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void * CUISocket::threadForServerAccept </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa67053ededca7396999cf9236756b837"></a><!-- doxytag: member="CUISocket::waitForUIClientAndStartSignal" ref="aa67053ededca7396999cf9236756b837" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool CUISocket::waitForUIClientAndStartSignal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl class="return"><dt><b>Returns:</b></dt><dd>True for start signal and false for no start signal. No start signal -&gt; main programm should exit </dd></dl>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a96082f4805fd90bb93108779862b0df1"></a><!-- doxytag: member="CUISocket::mAllowClients" ref="a96082f4805fd90bb93108779862b0df1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classCUISocket.html#a96082f4805fd90bb93108779862b0df1">CUISocket::mAllowClients</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aee81859d16cb6c117712296b250bdd6e"></a><!-- doxytag: member="CUISocket::mAmpMulti" ref="aee81859d16cb6c117712296b250bdd6e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classCUISocket.html#aee81859d16cb6c117712296b250bdd6e">CUISocket::mAmpMulti</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a00bc83d2580f29358c85b605b7c0e51b"></a><!-- doxytag: member="CUISocket::mAmpSync" ref="a00bc83d2580f29358c85b605b7c0e51b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pthread_mutex_t <a class="el" href="classCUISocket.html#a00bc83d2580f29358c85b605b7c0e51b">CUISocket::mAmpSync</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a17c820348b6d3f65530ebcb713b23d2f"></a><!-- doxytag: member="CUISocket::mClientAddress" ref="a17c820348b6d3f65530ebcb713b23d2f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct sockaddr_in <a class="el" href="classCUISocket.html#a17c820348b6d3f65530ebcb713b23d2f">CUISocket::mClientAddress</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a3361b8b3e99b76814c206c34b34a2d82"></a><!-- doxytag: member="CUISocket::mClientSocket" ref="a3361b8b3e99b76814c206c34b34a2d82" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classCUISocket.html#a3361b8b3e99b76814c206c34b34a2d82">CUISocket::mClientSocket</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aab63ab870a2d3649d1d66ead11d73eaf"></a><!-- doxytag: member="CUISocket::mCommandSendSync" ref="aab63ab870a2d3649d1d66ead11d73eaf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pthread_mutex_t <a class="el" href="classCUISocket.html#aab63ab870a2d3649d1d66ead11d73eaf">CUISocket::mCommandSendSync</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A UI command MUST use this mutex to guarantee the sending as one data block. Otherwise a command can be currupted (interlaced with a other command).</p>
<p>The mutex must be locked before sending the first byte (this also includes the length-field for the command) and must be unlocked after sending the last byte.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>It's not enougth to sync the methode sendData. </dd></dl>

</div>
</div>
<a class="anchor" id="ab788cb96d6bb37631898b83a4697b3dd"></a><!-- doxytag: member="CUISocket::mConfig" ref="ab788cb96d6bb37631898b83a4697b3dd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="properties__reader_8h.html#a67847fd00cb49d80dd45f61722eb9a43">CPropertiesReader</a>* <a class="el" href="classCUISocket.html#ab788cb96d6bb37631898b83a4697b3dd">CUISocket::mConfig</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5cab2065bee4316741e44ff14267d1c9"></a><!-- doxytag: member="CUISocket::mProtocolData" ref="a5cab2065bee4316741e44ff14267d1c9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char* <a class="el" href="classCUISocket.html#a5cab2065bee4316741e44ff14267d1c9">CUISocket::mProtocolData</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aeea9fcbf6a6da69cb383f8d4229217cf"></a><!-- doxytag: member="CUISocket::mProtocolDataLength" ref="aeea9fcbf6a6da69cb383f8d4229217cf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classCUISocket.html#aeea9fcbf6a6da69cb383f8d4229217cf">CUISocket::mProtocolDataLength</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a4931380b93a42c044af927cba4f78a0d"></a><!-- doxytag: member="CUISocket::mProtocolDataNextIndex" ref="a4931380b93a42c044af927cba4f78a0d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classCUISocket.html#a4931380b93a42c044af927cba4f78a0d">CUISocket::mProtocolDataNextIndex</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a143e07bf1578ce8f0760164cd38800a8"></a><!-- doxytag: member="CUISocket::mProtocolSync" ref="a143e07bf1578ce8f0760164cd38800a8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pthread_mutex_t <a class="el" href="classCUISocket.html#a143e07bf1578ce8f0760164cd38800a8">CUISocket::mProtocolSync</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a652b9075b42132035fdd1f405dc8dc70"></a><!-- doxytag: member="CUISocket::mRunning" ref="a652b9075b42132035fdd1f405dc8dc70" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool* <a class="el" href="classCUISocket.html#a652b9075b42132035fdd1f405dc8dc70">CUISocket::mRunning</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aaec2a23c5e3255a0dffc3a3c62472007"></a><!-- doxytag: member="CUISocket::mSendSync" ref="aaec2a23c5e3255a0dffc3a3c62472007" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pthread_mutex_t <a class="el" href="classCUISocket.html#aaec2a23c5e3255a0dffc3a3c62472007">CUISocket::mSendSync</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0a3c06900b0b9fb9a9d920deea0da492"></a><!-- doxytag: member="CUISocket::mServerAddress" ref="a0a3c06900b0b9fb9a9d920deea0da492" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct sockaddr_in <a class="el" href="classCUISocket.html#a0a3c06900b0b9fb9a9d920deea0da492">CUISocket::mServerAddress</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="af429e2606f58040c5907b5deb3b4d173"></a><!-- doxytag: member="CUISocket::mServerSocket" ref="af429e2606f58040c5907b5deb3b4d173" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classCUISocket.html#af429e2606f58040c5907b5deb3b4d173">CUISocket::mServerSocket</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9549ccfd26af168daef1e63263cae042"></a><!-- doxytag: member="CUISocket::mServerThdId" ref="a9549ccfd26af168daef1e63263cae042" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pthread_t <a class="el" href="classCUISocket.html#a9549ccfd26af168daef1e63263cae042">CUISocket::mServerThdId</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aae9ef13605d9560c2ee1feed25252fa4"></a><!-- doxytag: member="CUISocket::mShutdown" ref="aae9ef13605d9560c2ee1feed25252fa4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classCUISocket.html#aae9ef13605d9560c2ee1feed25252fa4">CUISocket::mShutdown</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a22d3544a8839f1b1c0e8746202178f16"></a><!-- doxytag: member="CUISocket::mStartSignalValue" ref="a22d3544a8839f1b1c0e8746202178f16" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classCUISocket.html#a22d3544a8839f1b1c0e8746202178f16">CUISocket::mStartSignalValue</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aba9f5b2c4634bbbcb8c94b498b886355"></a><!-- doxytag: member="CUISocket::mWaitTime" ref="aba9f5b2c4634bbbcb8c94b498b886355" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classCUISocket.html#aba9f5b2c4634bbbcb8c94b498b886355">CUISocket::mWaitTime</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6dd0c8d6e78cea3dd9ad8600f968edc3"></a><!-- doxytag: member="CUISocket::sConnectSignal" ref="a6dd0c8d6e78cea3dd9ad8600f968edc3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pthread_cond_t <a class="el" href="classCUISocket.html#a6dd0c8d6e78cea3dd9ad8600f968edc3">CUISocket::sConnectSignal</a> = PTHREAD_COND_INITIALIZER<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a12587315854a71b4414b9bc71348376e"></a><!-- doxytag: member="CUISocket::sIniSection" ref="a12587315854a71b4414b9bc71348376e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::string <a class="el" href="classCUISocket.html#a12587315854a71b4414b9bc71348376e">CUISocket::sIniSection</a> = &quot;USER_INTERFACE&quot;<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aafd44dd43eaeb5300261fba95c9c633a"></a><!-- doxytag: member="CUISocket::sInstance" ref="aafd44dd43eaeb5300261fba95c9c633a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCUISocket.html">CUISocket</a> * <a class="el" href="classCUISocket.html#aafd44dd43eaeb5300261fba95c9c633a">CUISocket::sInstance</a> = NULL<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a8ea0cb46eba53eafa17dba409689b209"></a><!-- doxytag: member="CUISocket::sMaxDataLength" ref="a8ea0cb46eba53eafa17dba409689b209" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const uint32_t <a class="el" href="classCUISocket.html#a8ea0cb46eba53eafa17dba409689b209">CUISocket::sMaxDataLength</a> = 1048576<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5e133f3495bfb9967c972f116132691d"></a><!-- doxytag: member="CUISocket::sStartSignal" ref="a5e133f3495bfb9967c972f116132691d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pthread_cond_t <a class="el" href="classCUISocket.html#a5e133f3495bfb9967c972f116132691d">CUISocket::sStartSignal</a> = PTHREAD_COND_INITIALIZER<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa59bd314cded7c165146925bfa68c838"></a><!-- doxytag: member="CUISocket::sSync" ref="aa59bd314cded7c165146925bfa68c838" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">pthread_mutex_t <a class="el" href="classCUISocket.html#aa59bd314cded7c165146925bfa68c838">CUISocket::sSync</a> = PTHREAD_MUTEX_INITIALIZER<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="ui__socket_8h_source.html">ui_socket.h</a></li>
<li><a class="el" href="ui__socket_8cxx.html">ui_socket.cxx</a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 25 2012 22:00:46 for Whisper by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
